package com.hzhc.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 箱明细
 * </p>
 *
 * @author Fchenxu
 * @since 2024-05-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("yw_order_cntr")
public class YwOrderCntr implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 生成编号
     */
    private String orderNo;

    /**
     * 集装箱号
     */
    private String cntrNo;

    /**
     * 车号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String truckNo;

    /**
     * 品名
     */
    private String goodsName;

    /**
     * 空重标志( E：空，F：重）
     */
    private String efFlag;

    /**
     * 箱型
     */
    private String cntrSize;

    /**
     * 箱类
     */
    private String cntrKind;

    /**
     * 托运人重量
     */
    private String shipperWeight;

    /**
     * 承运人重量
     */
    private String carrierWeight;

    /**
     * 箱货重量(吨)
     */
    private String weight;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;

    /**
     * 是否删除
     */
    private Integer disable;

    /**
     * 创建人
     */
    private Long userId;

    /**
     * 修改人
     */
    private Long updateUserId;

    /**
     * 备注
     */
    private String remark;

    /**
     * 计划贝位
     */
    private String jhBay;

    /**
     * 理货状态 0未理货  5已提未还 10已理货
     */
    private Integer tallyState;


    /**
     * 理货时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime tallyTime;


    /**
     * 理货人
     */
    private Long tallyUserId;

    /**
     * 理货人会员id
     */
    private Long tallyMemberId;

    /**
     * 理货人名称
     */
    private String tallyUserName;


    /**
     * 预约状态(0:未预约，1：已预约)
     */
    private Integer orderFlag;

    /**
     * 股道
     */
    private String track;

    /**
     * 顺位号
     */
    private String cisNo;

    /**
     * 需求号
     */
    private String demandNo;

    /**
     * 提运单号
     */
    private String billNo;

    /**
     * 提运单号图片url
     */
    private String billNoImgurl;

    /**
     * 施封号
     */
    private String sealNo;

    /**
     * 发局
     */
    private String sendBureau;

    /**
     * 发站
     */
    private String initialStation;

    /**
     * 发货人
     */
    private String shipper;

    /**
     * 到局
     */
    private String finalBureau;

    /**
     * 到站
     */
    private String destination;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 客户id
     */
    private Long companyId;

    @TableField(exist = false)
    private Integer cntrNum;

    /**
     * 车辆预约id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long vehicleId;

    /**
     * 进卡状态(0:未进卡，1：已进卡)
     */
    private Integer declareFlag;

    /**
     * 进卡重量(吨)
     */
    private String jkWeight;

    /**
     * 出卡重量(吨)
     */
    private String ckWeight;

    @TableField(exist = false)
    private String bayA;

    @TableField(exist = false)
    private String bayB;

    /**
     * 收货联系人
     */
    private String receiveName;

    /**
     * 收货联系方式
     */
    private String receivePhone;

    private String consigner;//发货人

    private String qyPort;//起运港

    private String shipName;//船名

    private String sumTon;//总吨数

    private String xPort;//卸货港

    /**
     * 专用线或货场
     */
    private String lineOrYard;

    /**
     * 收货人电话
     */
    private String consigneePhone;
    /**
     * 收货人联系方式
     */
    private String consigneeLx;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer zcTallyFlag;//理货装车状态

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private LocalDateTime zcTime;//装车时间

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Integer zcUser;//装车理货人

    /**
     * 理货重量
     */
    private String lhWeight;

    private Integer hzdrFlag;//回重导入  默认0否，  1是

    /**
     * 修改状态 ：默认0 不允许修改，1 修改收货人 2修改货信息
     */
    private Integer editFlag;

    /**
     * 驳回原因
     */
    private String refugeeReason;

    /**
     * 船收货单位
     */
    private String shipSh;

    /**
     * 船发货单位
     */
    private String shipFh;

    /**
     * 空重(千克)
     */
    private String kzWeight;
    /**
     * 毛重(千克)
     */
    private String mzWeight;
    /**
     * 净重(千克)
     */
    private String jzWeight;

    /**
     * 皮重过磅时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime pzGateTime;

    /**
     * 毛重过磅时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime mzGateTime;

    /**
     * 下水令
     */
    private String waterOrder;

    @TableField(exist = false)
    private String oldCntrNo;

    private Integer flow;//提重流向

    /**
     * 付款人
     */
    private String payer;
}
